package satk.objetos;

import java.io.Serializable;
import satk.beans.interfaces.IntObjetos;

/**
 * Clase que almacena la información de una institución
 * @author Sergio Flores Genis <http://sergenis.x10.mx>, 16/04/2011
 */
public class Institucion
        implements IntObjetos, Serializable {

    private static final long serialVersionUID = 762031315L;
    private Integer identificador = 0;
    private String nombre = "";
    private String siglas = "";    

    public Institucion(int identificador, String nombre, String siglas) {
        this.identificador = identificador;
        this.nombre = nombre;
        this.siglas = siglas;
    }

    public Institucion() {
    }

    // ATRIBUTO: identificador
    @Override
    public Integer getIdentificador() {
        return identificador;
    }

    @Override
    public void setIdentificador(Integer identificador) {
        this.identificador = identificador;
    }

    // ATRIBUTO: nombre
    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    // ATRIBUTO: siglas
    public String getSiglas() {
        return siglas;
    }

    public void setSiglas(String siglas) {
        this.siglas = siglas;
    }

    @Override
    public String toString() {
        String format = "INSTITUTO@[%d;%s;%s]";
        return String.format(format, identificador, siglas, nombre);
    }

    @Override
    public Object clon(){
        try {
            return this.clone();
        } catch (CloneNotSupportedException ex) {
        }
        return null;
    }

    @Override
    public java.util.List<Throwable> valida() {
        java.util.List<Throwable> list = new java.util.LinkedList<Throwable>();
        if (nombre.isEmpty()) {
            list.add(new Throwable("Ingrese en nombre de la intitución"));
        }
        if (siglas.isEmpty()) {
            list.add(new Throwable("Indique las siglas de la institución"));
        }
        return list;
    }
}
